Technical Field
This patent application relates generally to data processing test methods and apparatus and more particularly to testing a service interface.
Background Information
One important aspect of data processing is the provisioning of various types of services. By “service,” we refer to some combination of programming and data made available from one or more data processors to other data processors over a network. In contemporary systems, such services may be provided by local area servers, or more commonly, Internet-remote accessible servers. The services may include file storage services, database services, email services, Web services, search services and the like. In general, such services are accessed through an automated interface, which may specify a set of commands, functions, data, and other elements exposed to access the service. The interface may be an Application Programming Interface (API), Application Binary Interface (ABI) or other forms.
As uses of a service proliferate, concerns of the operation of the service include the effect on the service's performance as demands for that service arise. The result is increased demand for testing service interfaces of different types. Such tests are needed not only to determine if the service behaves logically as expected, but also to evaluate how well the service performs under demand load. Developing applications to test services has thus become a crucial part of offering them.
At the present time varies options exist to expose service interfaces. These include, for example, communication protocols such as Simple Object Access Protocol (SOAP), Representational State Transfer (REST), Remote Method Invocation (RMI), Common Object Request Broker Architecture (CORBA) and the like. With these varied options it becomes more time consuming for developers and their quality assurance team to develop interface-specific test suites.
It is now common for each implementer of a service interface to write their own specialized test suite. Certain unit testing frameworks such as JUnit and PyUnit are available but those are specific to the Java or Python language, and are intended to support functional testing. These tools also typically require a significant detailed coding effort in a specific programming language to properly communicate with other implementations. Other tools such as Postman-REST clients provide a structured platform for constructing collections of commands, but these are specific to particular interface types.